home *** CD-ROM | disk | FTP | other *** search
/ Compendium Deluxe 1 / LSD Compendium Deluxe 1.iso / a / programming / assembly / asmpak4.lha / SINUS_GENERATOR.S < prev    next >
Encoding:
Text File  |  1980-01-01  |  915 b   |  56 lines

  1.  
  2. **    UDREGN SINUS TIL EN VINKEL MED TAYLORS FORMAL FOR APPROKSIMATION
  3. **    AF FUNKTIONER.
  4.  
  5. *******************************************************************************
  6.  
  7. START    MOVE.L    #45,D0    ; VINKEL
  8.     JSR    SINUS    ; UDREGN SINUS TIL VINKEL
  9.     RTS
  10.     
  11. AMPLITUDE = 30
  12.  
  13. SINUS    MULS    #256,D0        ; VINKEL * 256
  14.     MOVE.W    #90*256,D2    ; VINKELSTYKKER FOR 1/4 CIRKEL
  15.     DIVS    D2,D0
  16.     BPL.W    SINUS2        ; OMFORM TIL VINKEL MELLEM -90° TIL 90°
  17.     NEG.W    D0
  18.     NEG.W    D2
  19. SINUS2    MOVE.W    D0,D1
  20.     SWAP    D0
  21.     LSR.W    #1,D1
  22.     BCC.S    SINUS3
  23.     SUB.W    D0,D2
  24.     MOVE.W    D2,D0
  25. SINUS3    LSR.W    #1,D1
  26.     BCC.S    SINUS4
  27.     NEG.W    D0
  28. SINUS4    MULS    #18301,D0    ; 3.14159/180*65536*16
  29.     SWAP    D0
  30.     MOVEQ    #12,D1
  31.     MOVE.L    #$0800,D4
  32.     MOVE.W    D0,D2
  33.     MULS    D0,D2
  34.     ADD.L    D4,D2
  35.     ASR.L    D1,D2
  36.     MOVE.W    D2,D3
  37.     MULS    D0,D2
  38.     ADD.L    D4,D2
  39.     ASR.L    D1,D2
  40.     MULS    D2,D3
  41.     ADD.L    D4,D3
  42.     ASR.L    D1,D3
  43.     DIVS    #6,D2
  44.     DIVS    #120,D3
  45.     SUB.W    D2,D0
  46.     ADD.W    D3,D0
  47.     ADDQ.W    #8,D0
  48.     ASR.W    #4,D0
  49.  
  50.     muls    #AMPLITUDE,d0
  51.     divs    #256,d0
  52.  
  53.     EXT.L    D0
  54.     RTS
  55.  
  56.